package com.example.web.service;

import com.example.web.entity.Customer;

import java.util.List;
import java.util.Map;

public interface CustomerService {
    
    /**
     * 分页查询客户列表
     * @param page 页码
     * @param size 页大小
     * @param status 客户状态筛选
     * @param keyword 关键词搜索
     * @param creatorId 创建人ID
     * @return 分页结果
     */
    Map<String, Object> getCustomerList(Integer page, Integer size, String status, String keyword, Long creatorId);
    
    /**
     * 根据ID查询客户
     * @param id 客户ID
     * @return 客户信息
     */
    Customer findById(Long id);
    
    /**
     * 创建新客户
     * @param customer 客户信息
     * @return 创建的客户
     */
    Customer createCustomer(Customer customer);
    
    /**
     * 更新客户信息
     * @param customer 客户信息
     * @return 更新的客户
     */
    Customer updateCustomer(Customer customer);
    
    /**
     * 删除客户（逻辑删除）
     * @param id 客户ID
     * @return 是否删除成功
     */
    boolean deleteCustomer(Long id);
    
    /**
     * 获取指定创建人的客户列表（用于互动记录关联下拉选择）
     * @param creatorId 创建人 ID
     * @return 客户列表
     */
    List<Customer> getCustomersByCreator(Long creatorId);
}